package main

import "fmt"

func main() {
	// 声明变量
	// 语法：var 变量名 数据类型 = 初始值
	var a int = 10
	var b string = "hello"
	var c bool = true
	var d float32 = 3.14
	var e complex64 = 2 + 3i

	// 打印变量
	fmt.Println(a)
	fmt.Println(b)
	fmt.Println(c)
	fmt.Println(d)
	fmt.Println(e)
	fmt.Println("============")
	// 语法，一次性声明多个变量，同类型的变量声明，var 变量名1, 变量名2, 变量名3 数据类型 = 初始值1, 初始值2, 初始值3
	var f, g, h int = 1, 2, 3
	fmt.Println(f, g, h)

	// 声明变量不赋值，默认值是零值
	var i int
	fmt.Println(i)
	fmt.Println("============")

	// 声明变量时，可以省略数据类型，编译器会根据初始值自动推断数据类型
	var j = 100
	var k = "world"
	var l = true
	var m = 3.14159
	var n = 2 + 3i
	fmt.Println(j, k, l, m, n)
	fmt.Println("============")

	// 简略声明变量，省略了 var 关键字，直接声明变量名和初始值，同样会自动推断数据类型
	// 注意：简略声明变量只能用在函数内部，成员变量不能简略声明
	o := 1000
	p := "golang"
	q := false
	r := 3.1415926
	s := 2 + 3i
	fmt.Println(o, p, q, r, s)
}